//
//  StatusRetweetedCell.swift
//  MicroBlog
//
//  Created by 002 on 15/10/22.
//  Copyright © 2015年 002. All rights reserved.
//

import UIKit
import FFLabel

class StatusRetweetedCell: StatusCell {

    // 微博视图模型
    /// 如果继承父类的属性
    /// 1. 需要 override
    /// 2. 不需要 super
    /// 3. 先执行父类的 didSet，再执行子类的 didSet -> 只关心 子类相关设置就够了！

    override var viewModel : StatusViewModel? {
        
        didSet {
            // 1->设置转发微博的文字内容
            let text = viewModel?.retweetText ?? ""
            retweetedLabel.attributedText = EmoticonManager.sharedManager.emoticonText(text, font: retweetedLabel.font)
            
            // 2->视图配图布局(根据配图数量，决定配图视图的顶部间距)
            pictureView.snp_updateConstraints { (make) -> Void in
                let offset = viewModel?.thumbnailUrls?.count > 0 ? StatusCellMargin : 0
                make.top.equalTo(retweetedLabel.snp_bottom).offset(offset)
            }
        }
    }
    
    // MARK:懒加载控件
    // 背景按钮
    private lazy var backButton : UIButton = {
        let backBtn = UIButton()
        backBtn.backgroundColor = UIColor(white: 0.95, alpha: 1.0)
        return backBtn
    }()
    
    // 转发标签
    private lazy var retweetedLabel : FFLabel = FFLabel(
        title: "转发微博转发微博转发微博转发微博转发微博转发微博转发微博转发微博转发微博转发微博",
        fontSize: 14,
        color: UIColor.darkGrayColor(),
        screenInsert: StatusCellMargin)
}

// MARK: - 设置界面
extension StatusRetweetedCell {
    
    override func setupUI() {
        
        super.setupUI()
        // 1->添加控件
        contentView.insertSubview(backButton, belowSubview: pictureView)
        contentView.insertSubview(retweetedLabel, aboveSubview: backButton)
        
        // 2->布局
        
        // 背景按钮
        backButton.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentLabel.snp_bottom).offset(StatusCellMargin)
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.bottom.equalTo(bottomView.snp_top)
        }
        
        // 转发标签
        retweetedLabel.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(backButton.snp_top).offset(StatusCellMargin)
            make.left.equalTo(backButton.snp_left).offset(StatusCellMargin)
        }
        
        // 配图视图
        pictureView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(retweetedLabel.snp_bottom).offset(StatusCellMargin)
            make.left.equalTo(retweetedLabel.snp_left)
            make.width.equalTo(300)
            make.height.equalTo(90)
        }
        
        // 3. 设置代理
        retweetedLabel.labelDelegate = self
        
    }
}
